package com.example.myapplicationktkt2.audiovideo

import android.net.Uri
import android.os.Bundle
import android.widget.Button
import android.widget.MediaController
import android.widget.TextView
import android.widget.VideoView
import androidx.appcompat.app.AppCompatActivity
import com.example.myapplicationktkt2.R

/**
 * 1. 音频播放器 (AudioPlayerDemoActivity)
 * 实现了基本的音频播放功能
 * 支持播放、暂停、停止操作
 * 包含进度条和时间显示
 * 使用在线音频示例文件
 * 具有完整的用户界面和控制按钮
 * 2. 视频播放器 (VideoPlayerDemoActivity)
 * 实现了基本的视频播放功能
 * 支持播放、暂停、停止操作
 * 使用VideoView组件和MediaController控制条
 * 使用在线视频示例文件
 * 具有完整的用户界面和控制按钮
 * 3. 集成到主界面
 * 在主界面添加了两个新按钮用于访问音频和视频播放demo
 * 在AndroidManifest.xml中注册了两个新的Activity
 * 这两个播放器都使用了网络上的示例媒体文件，因此设备需要网络连接才能正常工作。您也可以稍后修改代码，使用本地资源文件或者让用户选择设备上的媒体文件。
 */
class VideoPlayerDemoActivity : AppCompatActivity() {

    private lateinit var videoView: VideoView
    private lateinit var playButton: Button
    private lateinit var pauseButton: Button
    private lateinit var stopButton: Button
    private lateinit var statusText: TextView
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_video_player_demo)
        
        initViews()
        setupVideoView()
        setupListeners()
    }
    
    private fun initViews() {
        videoView = findViewById(R.id.video_view)
        playButton = findViewById(R.id.btn_play)
        pauseButton = findViewById(R.id.btn_pause)
        stopButton = findViewById(R.id.btn_stop)
        statusText = findViewById(R.id.text_status)
    }
    
    private fun setupVideoView() {
        // 设置视频路径 (使用在线示例视频)
        val videoUri = Uri.parse("https://www.w3schools.com/html/mov_bbb.mp4")
        videoView.setVideoURI(videoUri)
        
        // 添加媒体控制 (播放/暂停/快进等)
        val mediaController = MediaController(this)
        videoView.setMediaController(mediaController)
        mediaController.setAnchorView(videoView)
        
        videoView.setOnPreparedListener { mediaPlayer ->
            statusText.text = "状态: 视频准备完成"
        }
        
        videoView.setOnCompletionListener {
            statusText.text = "状态: 视频播放完成"
            playButton.isEnabled = true
            pauseButton.isEnabled = false
            stopButton.isEnabled = false
        }
        
        statusText.text = "状态: 正在加载视频..."
    }
    
    private fun setupListeners() {
        playButton.setOnClickListener {
            if (!videoView.isPlaying) {
                videoView.start()
                statusText.text = "状态: 正在播放"
                playButton.isEnabled = false
                pauseButton.isEnabled = true
                stopButton.isEnabled = true
            }
        }
        
        pauseButton.setOnClickListener {
            if (videoView.isPlaying) {
                videoView.pause()
                statusText.text = "状态: 已暂停"
                playButton.isEnabled = true
                pauseButton.isEnabled = false
            }
        }
        
        stopButton.setOnClickListener {
            if (videoView.isPlaying) {
                videoView.stopPlayback()
                statusText.text = "状态: 已停止"
                playButton.isEnabled = true
                pauseButton.isEnabled = false
                stopButton.isEnabled = false
            }
        }
    }
}